[INFO] cloning repository https://github.com/ziyefbk/rbpf
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ziyefbk/rbpf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fziyefbk%2Frbpf", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fziyefbk%2Frbpf'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 85d5d4bdce61df9e0dd2027e3498db3f82beb37c
[INFO] fixing ziyefbk/rbpf against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fziyefbk%2Frbpf" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ziyefbk/rbpf
[INFO] finished tweaking git repo https://github.com/ziyefbk/rbpf
[INFO] tweaked toml for git repo https://github.com/ziyefbk/rbpf written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ziyefbk/rbpf on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ziyefbk/rbpf already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c
[INFO] running `Command { std: "docker" "start" "6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Compiling libc v0.2.122
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking ascii v0.9.3
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]     Checking json v0.12.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]     Checking elf v0.0.10
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]     Checking combine v3.8.1
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.11
[INFO] [stderr]     Checking thiserror v2.0.11
[INFO] [stderr]     Checking solana-sbpf v0.14.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Checking test_utils v0.14.2 (/opt/rustwide/workdir/test_utils)
[INFO] [stderr]    Migrating tests/exercise_instructions.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating benches/vm_execution.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/jit.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/execution.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating benches/elf_loader.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/vm.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/elf.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/disassemble.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating benches/jit_compile.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/assembler.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/verifier.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating benches/memory_mapping.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/disassembler.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/to_json.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.56s
[INFO] [stderr] crater-edition-check: solana-sbpf v0.14.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking solana-sbpf v0.14.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/tnum.rs:826:19
[INFO] [stdout]     |
[INFO] [stdout] 826 |         } else if (self.mask == 0 && other.mask == 0) {
[INFO] [stdout]     |                   ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 826 -         } else if (self.mask == 0 && other.mask == 0) {
[INFO] [stdout] 826 +         } else if self.mask == 0 && other.mask == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/tnum.rs:884:22
[INFO] [stdout]     |
[INFO] [stdout] 884 |             value |= (1i64<<63);
[INFO] [stdout]     |                      ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 884 -             value |= (1i64<<63);
[INFO] [stdout] 884 +             value |= 1i64<<63;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/tnum.rs:904:26
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let flag: bool = (other.value == 0);
[INFO] [stdout]     |                          ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 904 -         let flag: bool = (other.value == 0);
[INFO] [stdout] 904 +         let flag: bool = other.value == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/tnum.rs:919:16
[INFO] [stdout]     |
[INFO] [stdout] 919 |             if (leadz == 64) {
[INFO] [stdout]     |                ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 919 -             if (leadz == 64) {
[INFO] [stdout] 919 +             if leadz == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/wrapped_interval.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/wrapped_interval.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |         ((1u64 << (width - 1)) - 1)
[INFO] [stdout]     |         ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 259 -         ((1u64 << (width - 1)) - 1)
[INFO] [stdout] 259 +         (1u64 << (width - 1)) - 1
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/wrapped_interval.rs:274:18
[INFO] [stdout]     |
[INFO] [stdout] 274 |             _ => ((1u64 << width) - 1),
[INFO] [stdout]     |                  ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 274 -             _ => ((1u64 << width) - 1),
[INFO] [stdout] 274 +             _ => (1u64 << width) - 1,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/wrapped_interval.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |         (!self.base.is_bottom
[INFO] [stdout]     |         ^
[INFO] [stdout] 291 |             && (self.base.ub.wrapping_sub(self.base.lb) == Self::get_unsigned_max(self.base.width)))
[INFO] [stdout]     |                                                                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 290 ~         !self.base.is_bottom
[INFO] [stdout] 291 ~             && (self.base.ub.wrapping_sub(self.base.lb) == Self::get_unsigned_max(self.base.width))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/wrapped_interval.rs:1410:29
[INFO] [stdout]      |
[INFO] [stdout] 1410 |                 let lower = ((lb & (0xFF << (i * 8))) + (0x01 << (i * 8)));
[INFO] [stdout]      |                             ^                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1410 -                 let lower = ((lb & (0xFF << (i * 8))) + (0x01 << (i * 8)));
[INFO] [stdout] 1410 +                 let lower = (lb & (0xFF << (i * 8))) + (0x01 << (i * 8));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tnum.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut join_count = 0;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/tnum.rs:291:27
[INFO] [stdout]     |
[INFO] [stdout] 291 |               let mut res = Tnum::top();
[INFO] [stdout]     |                             ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 307 | /             res = Tnum {
[INFO] [stdout] 308 | |                 value: u64::MAX,
[INFO] [stdout] 309 | |                 mask: u64::MAX,
[INFO] [stdout] 310 | |             };
[INFO] [stdout]     | |_____________- `res` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/tnum.rs:753:13
[INFO] [stdout]     |
[INFO] [stdout] 753 |         let w = 64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/tnum.rs:822:13
[INFO] [stdout]     |
[INFO] [stdout] 822 |         let w = 64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/tnum.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let width = 64;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/tnum.rs:876:13
[INFO] [stdout]     |
[INFO] [stdout] 876 |         let width = 64;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sign_max`
[INFO] [stdout]    --> src/tnum.rs:877:13
[INFO] [stdout]     |
[INFO] [stdout] 877 |         let sign_max = i64::MAX;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sign_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sign_min`
[INFO] [stdout]    --> src/tnum.rs:878:13
[INFO] [stdout]     |
[INFO] [stdout] 878 |         let sign_min = i64::MIN;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sign_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/tnum.rs:903:13
[INFO] [stdout]     |
[INFO] [stdout] 903 |         let w = 64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/tnum.rs:1005:13
[INFO] [stdout]      |
[INFO] [stdout] 1005 |         let width = 64; // Fixed bit width
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]     --> src/tnum.rs:1170:9
[INFO] [stdout]      |
[INFO] [stdout] 1170 |     let w = 64u8; // Fixed bit width is 64
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mask` is never read
[INFO] [stdout]     --> src/tnum.rs:1182:13
[INFO] [stdout]      |
[INFO] [stdout] 1182 |             0u64
[INFO] [stdout]      |             ^^^^ this value is reassigned later and never used
[INFO] [stdout] 1183 |         };
[INFO] [stdout] 1184 |         mask = 0xFFFFFFFFFFFFFFFF;
[INFO] [stdout]      |         ------------------------- `mask` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mask` is never read
[INFO] [stdout]     --> src/tnum.rs:1180:13
[INFO] [stdout]      |
[INFO] [stdout] 1180 |             (1u64 << (qzero - 1)) - 1
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1184 |         mask = 0xFFFFFFFFFFFFFFFF;
[INFO] [stdout]      |         ------------------------- `mask` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/wrapped_interval.rs:58:45
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn wrapping_div_signed(self, rhs: Self, width: u32) -> Self {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/wrapped_interval.rs:75:47
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn wrapping_div_unsigned(self, rhs: Self, width: u32) -> Self {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/wrapped_interval.rs:89:42
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn get_signed_representation(value: u64, width: u32) -> i64 {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/wrapped_interval.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn bottom(width: u32) -> Self {
[INFO] [stdout]     |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/wrapped_interval.rs:1350:13
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         let mut swapped_values: Vec<u64> = candidates
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/wrapped_interval.rs:1419:13
[INFO] [stdout]      |
[INFO] [stdout] 1419 |         let mut swapped_values: Vec<u64> = candidates
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/wrapped_interval.rs:1489:13
[INFO] [stdout]      |
[INFO] [stdout] 1489 |         let mut swapped_values: Vec<u64> = candidates
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask_low`
[INFO] [stdout]     --> src/wrapped_interval.rs:1480:21
[INFO] [stdout]      |
[INFO] [stdout] 1480 |                 let mask_low = if i > 0 { (1u64 << (i * 8)) - 1 } else { 0 };
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mask_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_msb_zero` is never used
[INFO] [stdout]   --> src/wrapped_interval.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | trait MsbCheck {
[INFO] [stdout]    |       -------- method in this trait
[INFO] [stdout]  9 |     fn is_msb_one(self, width: u32) -> bool;
[INFO] [stdout] 10 |     fn is_msb_zero(self, width: u32) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/reduced_product.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ReducedProduct {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/tnum.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub value: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/tnum.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub mask: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/tnum.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn from_range(min: u64, max: u64) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:214:5
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn shl(&self, x: &Tnum) -> Tnum {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     pub fn lshr(&self, x: &Tnum) -> Tnum {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:602:5
[INFO] [stdout]     |
[INFO] [stdout] 602 |     pub fn is_aligned(&self, size: u64) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:646:5
[INFO] [stdout]     |
[INFO] [stdout] 646 |     pub fn subreg(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:650:5
[INFO] [stdout]     |
[INFO] [stdout] 650 |     pub fn clear_subreg(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:654:5
[INFO] [stdout]     |
[INFO] [stdout] 654 |     pub fn with_subreg(&self, subreg: Self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:658:5
[INFO] [stdout]     |
[INFO] [stdout] 658 |     pub fn with_const_subreg(&self, value: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:859:5
[INFO] [stdout]     |
[INFO] [stdout] 859 |     pub fn get_zero_circle(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:873:5
[INFO] [stdout]     |
[INFO] [stdout] 873 |     pub fn get_one_circle(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Res` should have a snake case name
[INFO] [stdout]    --> src/tnum.rs:909:21
[INFO] [stdout]     |
[INFO] [stdout] 909 |             let mut Res = Tnum::top();
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case: `res`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `MaxRes` should have a snake case name
[INFO] [stdout]    --> src/tnum.rs:910:17
[INFO] [stdout]     |
[INFO] [stdout] 910 |             let MaxRes = match (self.value + self.mask).checked_div(other.value) {
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `max_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:978:5
[INFO] [stdout]     |
[INFO] [stdout] 978 |     pub fn shl_const(&self, k: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:996:5
[INFO] [stdout]     |
[INFO] [stdout] 996 |     pub fn lshr_const(&self, k: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1014:5
[INFO] [stdout]      |
[INFO] [stdout] 1014 |     pub fn ashr_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1052:5
[INFO] [stdout]      |
[INFO] [stdout] 1052 |     pub fn le(&self, other: &Tnum) -> bool {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1072:5
[INFO] [stdout]      |
[INFO] [stdout] 1072 |     pub fn or(&self, other: &Tnum) -> Tnum {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1083:5
[INFO] [stdout]      |
[INFO] [stdout] 1083 |     pub fn and(&self, other: &Tnum) -> Tnum {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]     --> src/tnum.rs:1169:1
[INFO] [stdout]      |
[INFO] [stdout] 1169 | pub fn rem_get_low_bits(lhs: &Tnum, rhs: &Tnum) -> Tnum {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/verifier.rs:442:5
[INFO] [stdout]     |
[INFO] [stdout] 442 |     pub domain: ReducedProduct,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/verifier.rs:443:5
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub initialized: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/verifier.rs:504:5
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub regs: [RegState; 11],  // r0-r10
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/wrapped_interval.rs:168:20
[INFO] [stdout]     |
[INFO] [stdout] 168 |         lb <= 0 && 0 <= ub
[INFO] [stdout]     |                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/wrapped_interval.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         self.base.lb >= 0
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:451:5
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn at(&self, value: u64) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:460:5
[INFO] [stdout]     |
[INFO] [stdout] 460 |     pub fn signed_split(&self, intervals: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:502:5
[INFO] [stdout]     |
[INFO] [stdout] 502 |     pub fn unsigned_split(&self, intervals: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:545:5
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub fn signed_and_unsigned_split(&self, out: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:599:5
[INFO] [stdout]     |
[INFO] [stdout] 599 |     pub fn equal(&self, x: &Self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:709:5
[INFO] [stdout]     |
[INFO] [stdout] 709 |     pub fn or(&self, x: &Self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:811:5
[INFO] [stdout]     |
[INFO] [stdout] 811 |     pub fn reduced_signed_unsigned_mul(&self, x: &Self, out: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1041:5
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn unsigned_div(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1084:5
[INFO] [stdout]      |
[INFO] [stdout] 1084 |     pub fn default_implementation(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1092:5
[INFO] [stdout]      |
[INFO] [stdout] 1092 |     pub fn urem(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1096:5
[INFO] [stdout]      |
[INFO] [stdout] 1096 |     pub fn srem(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     pub fn shl_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     pub fn shl(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1173:5
[INFO] [stdout]      |
[INFO] [stdout] 1173 |     pub fn lshr_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1194:5
[INFO] [stdout]      |
[INFO] [stdout] 1194 |     pub fn ashr_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1214:5
[INFO] [stdout]      |
[INFO] [stdout] 1214 |     pub fn ashr(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1228:5
[INFO] [stdout]      |
[INFO] [stdout] 1228 |     pub fn cross_signed_limit(&self) -> bool {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     pub fn signed_limit(&self, width: u32) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking test_utils v0.14.2 (/opt/rustwide/workdir/test_utils)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/tnum.rs:826:19
[INFO] [stdout]     |
[INFO] [stdout] 826 |         } else if (self.mask == 0 && other.mask == 0) {
[INFO] [stdout]     |                   ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 826 -         } else if (self.mask == 0 && other.mask == 0) {
[INFO] [stdout] 826 +         } else if self.mask == 0 && other.mask == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/tnum.rs:884:22
[INFO] [stdout]     |
[INFO] [stdout] 884 |             value |= (1i64<<63);
[INFO] [stdout]     |                      ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 884 -             value |= (1i64<<63);
[INFO] [stdout] 884 +             value |= 1i64<<63;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/tnum.rs:904:26
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let flag: bool = (other.value == 0);
[INFO] [stdout]     |                          ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 904 -         let flag: bool = (other.value == 0);
[INFO] [stdout] 904 +         let flag: bool = other.value == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/tnum.rs:919:16
[INFO] [stdout]     |
[INFO] [stdout] 919 |             if (leadz == 64) {
[INFO] [stdout]     |                ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 919 -             if (leadz == 64) {
[INFO] [stdout] 919 +             if leadz == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/wrapped_interval.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/wrapped_interval.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |         ((1u64 << (width - 1)) - 1)
[INFO] [stdout]     |         ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 259 -         ((1u64 << (width - 1)) - 1)
[INFO] [stdout] 259 +         (1u64 << (width - 1)) - 1
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/wrapped_interval.rs:274:18
[INFO] [stdout]     |
[INFO] [stdout] 274 |             _ => ((1u64 << width) - 1),
[INFO] [stdout]     |                  ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 274 -             _ => ((1u64 << width) - 1),
[INFO] [stdout] 274 +             _ => (1u64 << width) - 1,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/wrapped_interval.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |         (!self.base.is_bottom
[INFO] [stdout]     |         ^
[INFO] [stdout] 291 |             && (self.base.ub.wrapping_sub(self.base.lb) == Self::get_unsigned_max(self.base.width)))
[INFO] [stdout]     |                                                                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 290 ~         !self.base.is_bottom
[INFO] [stdout] 291 ~             && (self.base.ub.wrapping_sub(self.base.lb) == Self::get_unsigned_max(self.base.width))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/wrapped_interval.rs:1410:29
[INFO] [stdout]      |
[INFO] [stdout] 1410 |                 let lower = ((lb & (0xFF << (i * 8))) + (0x01 << (i * 8)));
[INFO] [stdout]      |                             ^                                            ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1410 -                 let lower = ((lb & (0xFF << (i * 8))) + (0x01 << (i * 8)));
[INFO] [stdout] 1410 +                 let lower = (lb & (0xFF << (i * 8))) + (0x01 << (i * 8));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tnum.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let mut join_count = 0;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/tnum.rs:291:27
[INFO] [stdout]     |
[INFO] [stdout] 291 |               let mut res = Tnum::top();
[INFO] [stdout]     |                             ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 307 | /             res = Tnum {
[INFO] [stdout] 308 | |                 value: u64::MAX,
[INFO] [stdout] 309 | |                 mask: u64::MAX,
[INFO] [stdout] 310 | |             };
[INFO] [stdout]     | |_____________- `res` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/tnum.rs:753:13
[INFO] [stdout]     |
[INFO] [stdout] 753 |         let w = 64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/tnum.rs:822:13
[INFO] [stdout]     |
[INFO] [stdout] 822 |         let w = 64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/tnum.rs:860:13
[INFO] [stdout]     |
[INFO] [stdout] 860 |         let width = 64;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/tnum.rs:876:13
[INFO] [stdout]     |
[INFO] [stdout] 876 |         let width = 64;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sign_max`
[INFO] [stdout]    --> src/tnum.rs:877:13
[INFO] [stdout]     |
[INFO] [stdout] 877 |         let sign_max = i64::MAX;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sign_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sign_min`
[INFO] [stdout]    --> src/tnum.rs:878:13
[INFO] [stdout]     |
[INFO] [stdout] 878 |         let sign_min = i64::MIN;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sign_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/tnum.rs:903:13
[INFO] [stdout]     |
[INFO] [stdout] 903 |         let w = 64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/tnum.rs:1005:13
[INFO] [stdout]      |
[INFO] [stdout] 1005 |         let width = 64; // Fixed bit width
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]     --> src/tnum.rs:1170:9
[INFO] [stdout]      |
[INFO] [stdout] 1170 |     let w = 64u8; // Fixed bit width is 64
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mask` is never read
[INFO] [stdout]     --> src/tnum.rs:1182:13
[INFO] [stdout]      |
[INFO] [stdout] 1182 |             0u64
[INFO] [stdout]      |             ^^^^ this value is reassigned later and never used
[INFO] [stdout] 1183 |         };
[INFO] [stdout] 1184 |         mask = 0xFFFFFFFFFFFFFFFF;
[INFO] [stdout]      |         ------------------------- `mask` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mask` is never read
[INFO] [stdout]     --> src/tnum.rs:1180:13
[INFO] [stdout]      |
[INFO] [stdout] 1180 |             (1u64 << (qzero - 1)) - 1
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1184 |         mask = 0xFFFFFFFFFFFFFFFF;
[INFO] [stdout]      |         ------------------------- `mask` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/wrapped_interval.rs:58:45
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn wrapping_div_signed(self, rhs: Self, width: u32) -> Self {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/wrapped_interval.rs:75:47
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn wrapping_div_unsigned(self, rhs: Self, width: u32) -> Self {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/wrapped_interval.rs:89:42
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn get_signed_representation(value: u64, width: u32) -> i64 {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/wrapped_interval.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn bottom(width: u32) -> Self {
[INFO] [stdout]     |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/wrapped_interval.rs:1350:13
[INFO] [stdout]      |
[INFO] [stdout] 1350 |         let mut swapped_values: Vec<u64> = candidates
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/wrapped_interval.rs:1419:13
[INFO] [stdout]      |
[INFO] [stdout] 1419 |         let mut swapped_values: Vec<u64> = candidates
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/wrapped_interval.rs:1489:13
[INFO] [stdout]      |
[INFO] [stdout] 1489 |         let mut swapped_values: Vec<u64> = candidates
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask_low`
[INFO] [stdout]     --> src/wrapped_interval.rs:1480:21
[INFO] [stdout]      |
[INFO] [stdout] 1480 |                 let mask_low = if i > 0 { (1u64 << (i * 8)) - 1 } else { 0 };
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mask_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_msb_zero` is never used
[INFO] [stdout]   --> src/wrapped_interval.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | trait MsbCheck {
[INFO] [stdout]    |       -------- method in this trait
[INFO] [stdout]  9 |     fn is_msb_one(self, width: u32) -> bool;
[INFO] [stdout] 10 |     fn is_msb_zero(self, width: u32) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/reduced_product.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ReducedProduct {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/tnum.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub value: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/tnum.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub mask: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/tnum.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn from_range(min: u64, max: u64) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:214:5
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn shl(&self, x: &Tnum) -> Tnum {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     pub fn lshr(&self, x: &Tnum) -> Tnum {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:602:5
[INFO] [stdout]     |
[INFO] [stdout] 602 |     pub fn is_aligned(&self, size: u64) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:646:5
[INFO] [stdout]     |
[INFO] [stdout] 646 |     pub fn subreg(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:650:5
[INFO] [stdout]     |
[INFO] [stdout] 650 |     pub fn clear_subreg(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:654:5
[INFO] [stdout]     |
[INFO] [stdout] 654 |     pub fn with_subreg(&self, subreg: Self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:658:5
[INFO] [stdout]     |
[INFO] [stdout] 658 |     pub fn with_const_subreg(&self, value: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:859:5
[INFO] [stdout]     |
[INFO] [stdout] 859 |     pub fn get_zero_circle(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:873:5
[INFO] [stdout]     |
[INFO] [stdout] 873 |     pub fn get_one_circle(&self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Res` should have a snake case name
[INFO] [stdout]    --> src/tnum.rs:909:21
[INFO] [stdout]     |
[INFO] [stdout] 909 |             let mut Res = Tnum::top();
[INFO] [stdout]     |                     ^^^ help: convert the identifier to snake case: `res`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `MaxRes` should have a snake case name
[INFO] [stdout]    --> src/tnum.rs:910:17
[INFO] [stdout]     |
[INFO] [stdout] 910 |             let MaxRes = match (self.value + self.mask).checked_div(other.value) {
[INFO] [stdout]     |                 ^^^^^^ help: convert the identifier to snake case: `max_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:978:5
[INFO] [stdout]     |
[INFO] [stdout] 978 |     pub fn shl_const(&self, k: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/tnum.rs:996:5
[INFO] [stdout]     |
[INFO] [stdout] 996 |     pub fn lshr_const(&self, k: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1014:5
[INFO] [stdout]      |
[INFO] [stdout] 1014 |     pub fn ashr_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1052:5
[INFO] [stdout]      |
[INFO] [stdout] 1052 |     pub fn le(&self, other: &Tnum) -> bool {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1072:5
[INFO] [stdout]      |
[INFO] [stdout] 1072 |     pub fn or(&self, other: &Tnum) -> Tnum {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/tnum.rs:1083:5
[INFO] [stdout]      |
[INFO] [stdout] 1083 |     pub fn and(&self, other: &Tnum) -> Tnum {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]     --> src/tnum.rs:1169:1
[INFO] [stdout]      |
[INFO] [stdout] 1169 | pub fn rem_get_low_bits(lhs: &Tnum, rhs: &Tnum) -> Tnum {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/verifier.rs:442:5
[INFO] [stdout]     |
[INFO] [stdout] 442 |     pub domain: ReducedProduct,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/verifier.rs:443:5
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub initialized: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/verifier.rs:504:5
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub regs: [RegState; 11],  // r0-r10
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/wrapped_interval.rs:168:20
[INFO] [stdout]     |
[INFO] [stdout] 168 |         lb <= 0 && 0 <= ub
[INFO] [stdout]     |                    ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/wrapped_interval.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         self.base.lb >= 0
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:451:5
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn at(&self, value: u64) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:460:5
[INFO] [stdout]     |
[INFO] [stdout] 460 |     pub fn signed_split(&self, intervals: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:502:5
[INFO] [stdout]     |
[INFO] [stdout] 502 |     pub fn unsigned_split(&self, intervals: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:545:5
[INFO] [stdout]     |
[INFO] [stdout] 545 |     pub fn signed_and_unsigned_split(&self, out: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:599:5
[INFO] [stdout]     |
[INFO] [stdout] 599 |     pub fn equal(&self, x: &Self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:709:5
[INFO] [stdout]     |
[INFO] [stdout] 709 |     pub fn or(&self, x: &Self) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/wrapped_interval.rs:811:5
[INFO] [stdout]     |
[INFO] [stdout] 811 |     pub fn reduced_signed_unsigned_mul(&self, x: &Self, out: &mut Vec<WrappedRange>) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1041:5
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     pub fn unsigned_div(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1084:5
[INFO] [stdout]      |
[INFO] [stdout] 1084 |     pub fn default_implementation(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1092:5
[INFO] [stdout]      |
[INFO] [stdout] 1092 |     pub fn urem(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1096:5
[INFO] [stdout]      |
[INFO] [stdout] 1096 |     pub fn srem(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1137:5
[INFO] [stdout]      |
[INFO] [stdout] 1137 |     pub fn shl_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1159:5
[INFO] [stdout]      |
[INFO] [stdout] 1159 |     pub fn shl(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1173:5
[INFO] [stdout]      |
[INFO] [stdout] 1173 |     pub fn lshr_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1194:5
[INFO] [stdout]      |
[INFO] [stdout] 1194 |     pub fn ashr_const(&self, k: u64) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1214:5
[INFO] [stdout]      |
[INFO] [stdout] 1214 |     pub fn ashr(&self, x: &Self) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1228:5
[INFO] [stdout]      |
[INFO] [stdout] 1228 |     pub fn cross_signed_limit(&self) -> bool {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]     --> src/wrapped_interval.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     pub fn signed_limit(&self, width: u32) -> Self {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.48s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking solana-sbpf v0.14.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/interpreter.rs (11 fixes)
[INFO] [stderr]        Fixed src/memory_management.rs (7 fixes)
[INFO] [stderr]        Fixed src/vm.rs (1 fix)
[INFO] [stderr]        Fixed src/elf_parser/mod.rs (3 fixes)
[INFO] [stderr]        Fixed src/x86.rs (1 fix)
[INFO] [stderr]        Fixed src/jit.rs (1 fix)
[INFO] [stderr]        Fixed src/aligned_memory.rs (2 fixes)
[INFO] [stderr]    Migrating tests/disassembler.rs from 2021 edition to 2024
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> tests/disassembler.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use test_utils::TestContextObject;
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/exercise_instructions.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "disassembler") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr]    Migrating examples/disassemble.rs from 2021 edition to 2024
[INFO] [stdout] error[E0460]: found possibly newer version of crate `solana_sbpf` which `test_utils` depends on
[INFO] [stdout]   --> tests/exercise_instructions.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | extern crate test_utils;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: perhaps that crate needs to be recompiled?
[INFO] [stdout]    = note: the following crate versions were found:
[INFO] [stdout]            crate `solana_sbpf`: /opt/rustwide/target/debug/deps/libsolana_sbpf-232cea78a137dbd4.rmeta
[INFO] [stdout]            crate `test_utils`: /opt/rustwide/target/debug/deps/libtest_utils-ba52579b4732c9ef.rmeta
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0460`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "exercise_instructions") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> examples/disassemble.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use test_utils::TestContextObject;
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/to_json.rs from 2021 edition to 2024
[INFO] [stderr] error: could not compile `solana-sbpf` (example "disassemble") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> examples/to_json.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use test_utils::TestContextObject;
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/elf.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (example "to_json") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> tests/elf.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use test_utils::{assert_error, syscalls, TestContextObject};
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating benches/jit_compile.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "elf") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> benches/jit_compile.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use test_utils::{create_vm, TestContextObject};
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/execution.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (bench "jit_compile") due to 1 previous error
[INFO] [stdout] error[E0460]: found possibly newer version of crate `solana_sbpf` which `test_utils` depends on
[INFO] [stdout]   --> tests/execution.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | extern crate test_utils;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: perhaps that crate needs to be recompiled?
[INFO] [stdout]    = note: the following crate versions were found:
[INFO] [stdout]            crate `solana_sbpf`: /opt/rustwide/target/debug/deps/libsolana_sbpf-232cea78a137dbd4.rmeta
[INFO] [stdout]            crate `test_utils`: /opt/rustwide/target/debug/deps/libtest_utils-ba52579b4732c9ef.rmeta
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/verifier.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0460`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "execution") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> tests/verifier.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use test_utils::{assert_error, create_vm, syscalls, TestContextObject};
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating benches/memory_mapping.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "verifier") due to 1 previous error
[INFO] [stderr]        Fixed benches/memory_mapping.rs (16 fixes)
[INFO] [stderr]    Migrating benches/vm_execution.rs from 2021 edition to 2024
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> benches/vm_execution.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use test_utils::{create_vm, TestContextObject};
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/assembler.rs from 2021 edition to 2024
[INFO] [stderr] error: could not compile `solana-sbpf` (bench "vm_execution") due to 1 previous error
[INFO] [stdout] error[E0460]: found possibly newer version of crate `solana_sbpf` which `test_utils` depends on
[INFO] [stdout]   --> tests/assembler.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | extern crate test_utils;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: perhaps that crate needs to be recompiled?
[INFO] [stdout]    = note: the following crate versions were found:
[INFO] [stdout]            crate `solana_sbpf`: /opt/rustwide/target/debug/deps/libsolana_sbpf-232cea78a137dbd4.rmeta
[INFO] [stdout]            crate `test_utils`: /opt/rustwide/target/debug/deps/libtest_utils-ba52579b4732c9ef.rmeta
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0460`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "assembler") due to 1 previous error
[INFO] [stderr]    Migrating benches/elf_loader.rs from 2021 edition to 2024
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]    --> src/memory_region.rs:694:9
[INFO] [stdout]     |
[INFO] [stdout] 694 |     use test_utils::assert_error;
[INFO] [stdout]     |         ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (lib test) due to 1 previous error
[INFO] [stderr]    Migrating tests/jit.rs from 2021 edition to 2024
[INFO] [stdout] error[E0460]: found possibly newer version of crate `solana_sbpf` which `test_utils` depends on
[INFO] [stdout]   --> benches/elf_loader.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | extern crate test_utils;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: perhaps that crate needs to be recompiled?
[INFO] [stdout]    = note: the following crate versions were found:
[INFO] [stdout]            crate `solana_sbpf`: /opt/rustwide/target/debug/deps/libsolana_sbpf-232cea78a137dbd4.rmeta
[INFO] [stdout]            crate `test_utils`: /opt/rustwide/target/debug/deps/libtest_utils-ba52579b4732c9ef.rmeta
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0460`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (bench "elf_loader") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]   --> tests/jit.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use test_utils::{syscalls, TestContextObject};
[INFO] [stdout]    |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/vm.rs from 2021 edition to 2024
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "jit") due to 1 previous error
[INFO] [stdout] error[E0463]: can't find crate for `test_utils`
[INFO] [stdout]  --> tests/vm.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use test_utils::{create_vm, syscalls, TestContextObject};
[INFO] [stdout]   |     ^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `solana-sbpf` (test "vm") due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c", kill_on_drop: false }`
[INFO] [stdout] 6f4e1d7a6d5ecbc4d35fef9263339d65032892c86a2139490c7b37c4bb7bb12c
